package com.atguigu.gulimall.auth;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession;


/**
 * 核心原理
 * 1）、@EnableRedisHttpSession导入RedisHttpSessionConfiguration配置
 * ****1、给容器中添加了一个组件
 * ********RedisOperationsSessionRepository：Redis操作session，session的增删改查封装类
 * ****2、SessionRepositoryFilter（就是一个Filter）: session存储过滤器
 * ********创建的时候，就自动从容其中获取到了SessionRepository
 * ********原始的request、response都被包装，SessionRepositoryRequestWrapper、SessionRepositoryResponseWrapper
 * ********以后获取session、request.getSession()；
 * ********wrapperRequest.getSession()是从SessionRepository中获取到的。
 * ****装饰者模式：
 * ********使用期间，自动续期
 */
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
@EnableRedisHttpSession     //整合Redis作为session存储
public class GulimallAuthServerApplication {

    public static void main(String[] args) {
        SpringApplication.run(GulimallAuthServerApplication.class, args);
    }

}
